package com.kk.factory.factorymethod;


import java.util.Scanner;

/**
 * @author 王志强
 * @date 2021-12-10
 */
public abstract class OrderPizza {

    public OrderPizza() {
        AbstractPizza pizza;
        String type;

        while (true) {
            type = getType();
            pizza = createPizza(type);

            if (pizza != null) {
                System.out.println("使用的是工厂方法模式");

                pizza.prepare();
            }

        }
    }


    /**
     * 让工厂子类去实现
     *
     * @param type
     * @return
     */
    abstract AbstractPizza createPizza(String type);

    /**
     * 拿到用户输入的 pizza 类型
     */
    private String getType() {
        Scanner scanner = new Scanner(System.in);
        return scanner.nextLine();
    }

}
